A distributed application includes a plurality of services. Each of the services performs a task or tasks as part of the distributed application. Often the distributed application is placed on a network of computers. The network of computers forms a distributed resource infrastructure where each of the computers forms a node. Performance of the distributed application depends on optimizing a placement of the services onto the nodes.
A method of the prior art uses parameters for individual nodes to determine a placement of the services onto the nodes. Such parameters include processing and storage capabilities of the nodes. This method, however, does not consider relationships among the nodes or among the services in the determination of the placement of the services onto the nodes.
Another method of the prior art considers topologies between the services and between the nodes. This method, however, requires that the topologies be fixed in certain configurations.
What is needed is an improved technique for determining a placement of services of a distributed application onto nodes of a distributed resource infrastructure, particularly, one that takes into account arbitrary topologies between the nodes and between the services.